package Hot100.Medium.LinkedList;

public class LC24_ExchangeTwoNode {

    public ListNode swapPairs(ListNode head) {
        // 创建虚拟头节点
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        ListNode cur = dummy;

        while (cur.next != null && cur.next.next != null) {
            // 定义要交换的两个节点
            ListNode first = cur.next;
            ListNode second = cur.next.next;
            // 执行交换
            first.next = second.next;
            second.next = first;
            cur.next = second;
            // 移动prev指针到下一对的前一个位置
            cur = first;
        }

        return dummy.next;
    }
}
